1. Field of the Invention
This invention relates to search engines and their Graphical User Interfaces (GUIs).
2. Discussion of Prior Art
Although possibly not previously recognized, searching for data in a large relational database using methods developed for searching pages on the Internet has been a difficult challenge. The openness or free-form way of thinking about data on the Internet has not fit well with searching the “parent-child” structure of data in relational databases. Typical Internet searches are based on keywords, and the user may be presented with an enormous set of results, with up to thousands of matches, and those searches typically search only a fraction of all the data on the Internet. Furthermore, keyword searches often present results that the user did not intend to search for, making it difficult to find all of the relevant results, because of the large volume of unwanted data that must be reviewed in order to find all of the relevant results.
Fortunately for Internet search engines, the searcher often may not care whether every relevant piece of information obtainable or every relevant website was found, so long as the search produces enough information to satisfy the searcher's curiosity. In contrast, when searching a large relational database it may often be desirable to search the entire database or an entire set of data and/or find every relevant piece of data, while limiting the number of unwanted results. For example, the finding of only some of the employees subject to a particular tax withholding while also finding thousands of other employees may be an unacceptable search result when searching for all of the employees subject to this particular tax withholding that are recorded in an accounting department's database.
Documents on a database can be arranged into fields that can be searched separately from the rest of the text. By using search fields, the number of unwanted results may be minimized. Consequently, although possibly not previously recognized, it may be desirable to make more use of fields when searching a relational database than when searching the Internet. However, although also possibly not previously recognized as problems, there are many difficulties in using prior art search engines for relational databases. For example, different types of users may need to use different sets of search fields, operators, and searching parameters. Presenting all available search fields, operators, and search parameters to each searcher may make the search engine difficult to use, because the individual searcher may be overwhelmed with the multitude of fields and/or search options that are unnecessary for his or her search.
Although some prior art search engines allow the user to configure the format of the output, they do not typically allow the format presented for inputting the search to be configured. For example, prior art search engines do not typically allow the types of fields and operators that are available to the individual searcher to be personalized for the user. Typically, reconfiguring a search engine so that different search fields, operators, and search parameters are available to a particular user requires writing or rewriting lines of computer code. Specifically, if an administrator wants to change the fields, operators, and search parameters available to different types of searchers, the code defining the search engine may need to be rewritten.
Also, although some software may allow an administrator to determine which users have access to different data, the access is controlled by a separate program or a separate part of the program rather than from within the search engine. Further, not every organization necessarily has security software for restricting access to data. Prior to purchasing a search engine the organization may not have had a need for restricting the access, because without the search engine the restricted data may have been essentially inaccessible by those who are not supposed to access it. Thus, the new search engine may introduce new security issues.
Additionally, in a relational database, it may be difficult to match the information stored in different tables about the same sales lead, for example, because of insufficient identifying information in one of the tables.